Arranging tiles

ABSTRACT

This document describes techniques and apparatuses for arranging tiles. These techniques and apparatuses enable users to quickly and easily arrange tiles within an interface, such as an application-launching interface. In some cases, users may arrange tiles in an interface with as little as one continuous gesture.

BACKGROUND

Many conventional application-launching interfaces permit users to launch applications by selecting an icon or label associated with the application. These interfaces often include these icons or labels in a flat list, a file-based hierarchy, or grouped by page. If a user wishes to find and select an application, the user scrolls through the list, searches through levels within the hierarchy, or flips through the pages until the user finds the icon or label. This process can be tedious for users, especially if the interface has many applications from which to choose.

To address this tedium, some application-launching interfaces permit users to move these icons or labels within a flat list, a file-based hierarchy, or page-oriented groups. This can aid users, as often-used applications can be oriented at the top of the flat list, at a higher level of the hierarchy, or in the first or second page of the page-oriented groups.

Moving icons or labels within these application-launching interfaces, however, can be tedious and confusing. A user wishing to move an icon from a sixth page of icons, for example, may need to select the icon, select to move to a desired other page, once in that desired page drop the icon at the end of the page, move other icons in that desired page around manually to a desired arrangement within the page, and then go back to the sixth page to manually arrange the icons remaining in the sixth page.

SUMMARY

This document describes techniques and apparatuses for arranging tiles. These techniques and apparatuses enable users to quickly and easily arrange tiles within an interface, such as an application-launching interface. In some cases, users may arrange tiles in an interface with as little as one continuous gesture.

This summary is provided to introduce simplified concepts for arranging tiles that are further described below in the Detailed Description and/or shown in the Figures. This summary is not intended to identify essential features of the claimed subject matter, nor is it intended for use in determining the scope of the claimed subject matter. The term “techniques” as used herein can include devices, systems, apparatuses, operations, and/or methods as permitted by the context in which the term is used.

BRIEF DESCRIPTION OF THE DRAWINGS

Embodiments for arranging tiles are described with reference to the following drawings. The same numbers are used throughout the drawings to reference like features and components:

FIG. 1 illustrates an example system in which techniques for arranging tiles can be implemented.

FIG. 2 illustrates an example method for arranging tiles.

FIG. 3 illustrates an example application-launching interface displaying multiple tiles associated with multiple applications.

FIG. 4 illustrates the example application-launching interface of FIG. 3 with an example gesture selection of a tile, the gesture moving the tile to a region of the interface.

FIG. 5 illustrates the interface of FIG. 3 having multiple different groups of tiles at lower resolution.

FIG. 6 illustrates a later portion of the gesture of FIG. 4, the later portion of the gesture moving the selected tile to a location proximate to tiles within one of the groups shown in FIG. 5.

FIG. 7 illustrates a view zooming in to show, at a higher resolution, the multiple tiles of the group shown in FIG. 6.

FIG. 8 illustrates a selection to move a tile from a current location to a region of a user interface having a marked area.

FIG. 9 illustrates an example method for automatically reflowing tiles, which may be used separate from or in conjunction with the method of FIG. 2.

FIG. 10 illustrates an array of tiles having multiple columns and rows.

FIG. 11 illustrates an automatic reflow of tiles of the array of FIG. 10 in response to movement of a tile.

FIG. 12 illustrates an automatic reflow of the array of FIG. 10 and a sub-array in response to movement of a small tile within the sub-array.

FIG. 13 illustrates an example device in which techniques for arranging tiles can be implemented.

DETAILED DESCRIPTION Overview

This document describes techniques for arranging tiles. These techniques enable users to better use their selection interfaces through simple and easy arranging of tiles within these interfaces. For application-launching interfaces, for example, the techniques permit users to arrange tiles within groups and across groups intuitively and with little effort. Not only can moving tiles be made easier by the techniques, the techniques may also automatically reflow the array of tiles into which, or from which, a tile is moved.

While techniques for arranging tiles can be implemented in any number of different devices, systems, environments, and/or configurations, example embodiments for arranging tiles are described in the context of the following example devices, systems, and methods.

Example System

FIG. 1 illustrates an example system 100 in which techniques for arranging tiles can be embodied. System 100 includes a computing device 102, which is illustrated with six examples: a laptop computer 104, a tablet computer 106, a smart phone 108, a set-top box 110, a desktop computer 112, and a gaming device 114, though other computing devices and systems, such as servers and netbooks, may also be used.

Computing device 102 includes computer processor(s) 116 and computer-readable storage media 118 (media 118). Media 118 includes an operating system 120, windows-based mode module 122, immersive mode module 124, manager 126, and applications 128. Computing device 102 also includes or has access to one or more displays 130, four examples of which are illustrated in FIG. 1.

Windows-based mode module 122 is capable of presenting applications 128 through windows having frames. These frames may provide controls through which to interact with an application and/or controls enabling a user to move and size the window.

Immersive mode module 124 provides a mode by which a user may view and interact with applications 128. In some embodiments, this mode presents content of, and enables interaction with, applications with little or no window frame and/or without a need for a user to manually size or position content. This mode can be, but is not required to be, hosted and/or surfaced without use of a typical desktop (e.g., windows-based) mode. Thus, in some cases immersive mode module 124 presents an immersive mode that is not a window (even one without a substantial frame) and precludes usage of desktop-like displays (e.g., a taskbar). Further still, in some embodiments this immersive mode is similar to an operating system in that it is not closeable or capable of being un-installed.

Manager 126 provides an application-selection interface that permits selection to launch, present, or revisit applications 128, whether of windows-based or immersive modes, and itself can be presented in a windows-based or immersive mode. Manager 126 also enables users to arrange tiles within the application-selection interface. Note that while system 100 and manager 126 are described in the context of application-selection interfaces, manager 126 may operate to arrange tiles, icons, or labels in other contexts, such as file systems, image retrieval systems, document retrieval systems, and the like.

Operating system 120, mode modules 122 and 124, and manager 126 can be separate from each other or combined or integrated in some form. Thus, in some cases operating system 120 includes mode modules 122 and 124 and manager 126.

Example Methods

This document now describes example methods for arranging tiles. These methods are shown as sets of blocks that specify operations performed, but are not necessarily limited to the order shown. Portions of the following discussion reference system 100 of FIG. 1, reference to which is made for example only.

FIG. 2 depicts a method 200 for arranging tiles, including ways in which to move a tile within or between groups of tiles. Block 202 receives selection of a selected tile of multiple tiles displayed in a first view in a user interface. This selection can move the selected tile from a current location within the multiple tiles to a region of the user interface.

Before this document proceeds to illustrate an example user interface, note that this selection can be through various manners, including single or multiple gestures. Gestures can be received through a mouse pointer, touch gestures made through a touch-sensitive display that displays the interface, and motion-sensitive gestures, such as through motion-detection device used in some gaming systems, to name just a few.

The interface in which the multiple tiles are displayed, as noted in part above, can be of various types, such as application-selecting interfaces and file systems. Thus, tiles in an interface may represent applications, images, files, and the like. Further, tiles are not necessarily passive or flat but may instead display content, such as from the application itself or from a remote source associated with the application even if the application is not itself executing.

By way of illustration, consider an example application-selection interface 300 shown in FIG. 3. Application-selection interface 300 displays multiple tiles associated with multiple applications. Each tile is associated with an application and indicates this association, such as with a graphic or textual descriptor. Applications are selectable through these tiles, such as through a mouse click or gesture (e.g., through a touch-screen implementation of display 130). In some cases, however, the applications are selectable as a group and/or through a hot key or other selection manner other than directly through a tile.

Manager 126 of FIG. 1 provides interface 300 and includes thirteen selectable tiles associated with thirteen applications. Tiles 302, 304, and 306 are large tiles associated with web-enabled, content-oriented applications, tile 308 is a large tile associated with a local, word-processing application, and tiles 310 and 312 are small tiles associated with web-enabled content-oriented applications.

As noted above, block 202 can receive a selection through a touch gesture, such as a touch gesture 402 illustrated in FIG. 4. This gesture 402 selects and moves tile 304 to top-edge region 404. This region can be an area or edge within interface 300. While not required, use of an upward or downward selection (e.g., gesture 402 of FIG. 4) can be useful to differentiate this type of gesture (up and down, rather than left and right) from other gestures. Here up and down motions are used to arrange tiles while left and right motions are used generally to pan or scroll through tiles. This differentiation aids users in their intuitive use of the interface and, in some cases, negates the need to describe or clutter the interface with instructions or information. Note that top-edge region 404 may be indicated to a user or not indicated; here it is shown for illustration purposes. Manager 126 may proceed immediately to block 204 when a portion or contact point of a gesture is within a region or wait for a dwell or hover in the region, such as waiting until gesture 402 hovers in top-edge region 404 before proceeding to block 204.

Block 204, responsive to the selection, zooms out from the first view to a second view, the second view including multiple other tiles not displayed in the first view. As noted in part above, the gesture or other selection can be continuous or otherwise. A multiple-gesture example is provided elsewhere herein.

Continuing with the ongoing example, assume that gesture 402 is continuous, meaning that gesture 402 is a single gesture maintained at least during blocks 202, 204, and 206 of method 200. For the continuous-gesture case, manager 126 “sticks” tile 304 to a selector (e.g., a finger or stylus) that makes gesture 402. Thus, while gesture 402 is maintained and tile 304 sticks to the finger shown in FIG. 4, manager 126 zooms out to present multiple other tiles not presented in the first view. This second view is illustrated in FIG. 5, which shows interface 300 having multiple different groups 502, 504, and 506 of tiles at lower resolution. Group 506 include tiles shown in FIGS. 3 and 4, though smaller (and partially obscured). Tile 304 is shown at full size, though it can be shrunk to correspond to the resolution of the tiles in groups 502, 504, and 506.

Block 206 receives selection moving the selected tile to a new location in the second view. This selection can be a drop of the selected tile to the new location or a dwell or hover over the new location, such as when a single, continuous gesture is used. This new location can be addressed by manager 126 in different ways. In one case, method 200 automatically places the selected tile at the new location and without further selection. In another case, method 200 waits for a further selection. In both cases, however, method 200 can zoom in to show multiple tiles at a higher resolution at block 208.

Block 208 zooms into the new location, the zooming in presenting a third view. The third view includes the new location and one or more of the multiple other tiles. In cases where method 200 automatically places the selected tile without further selection, the selected tile is shown placed within the group.

In cases where method 200 does not automatically place the selected tile at the new location but instead waits for a further selection, the selected tile is not shown within the group, though it may be shown outside or imposed over the group.

In the ongoing example, manager 126 receives another portion of gesture 402, this portion selecting to move tile 304 to a location 602 proximate to tiles within group 502 of FIG. 5. The result of this movement is shown in FIG. 6.

In response, manager 126 zooms in to show the multiple tiles of group 502 and selected tile 304 at higher-resolution view 702, which is illustrated in FIG. 7. In this, case tile 304 is shown still connected to a selector of gesture 402 and imposed over group 502. Thus, in this case manager 126 zooms in to show tiles in the group within which the new location resides. Manager 126 may then wait for a precise location at which to place the selected tile.

Method 200 proceeds to block 210 along the “Wait for Selection” path if awaiting a precise location within the group of tiles or to block 212 along the “Auto-Place” path if manager 126 places the selected tile at the new location in the group without further selection.

Block 210 receives a third selection, the third selection placing the selected tile between or adjacent to one or more of the multiple tiles. Manager 126 can indicate through feedback, prior to receiving the third selection, valid locations between or adjacent to the one or more of the multiple tiles at which the selected tile can be placed, either responsive to a selected tile being moved around the group, such as altering an appearance of tiles (e.g., tilting the tiles) above and/or below the location at which the selected tile currently resides (e.g., the 304's location in group 502 of FIG. 7). In other cases manager 126 indicates valid locations generally, such as by shading or coloring a space adjacent to or between tiles.

Block 212 places the selected tile at the new location. As noted, this new location can be received at block 206 or 210.

As noted above at block 202, a selection moving a tile from a current location to a region of a user interface may include a marked area within the user interface. This is illustrated at FIG. 8 at marked area 802. While not required, this marked area 802 indicates, with text (“Tile Bucket”) that tiles in this region may later be moved within this or to other groups of tiles. Here assume that tiles 304, 308, and 310 are selected and placed in the marked area 802, each with separate selections (e.g., three mouse clicks or drag-and-drop gestures). In response, manager 126 indicates that these tiles are removed from their current locations with shaded blocks at the selected tiles' original locations at 804, 806, and 808, respectively. Manager 126 also indicates that the selected tiles are ready to be moved by showing the tiles (here small versions of the tiles) within marked area 802. Method 200 then enables movement of each selected tile one-by-one or at once, such as by multiple or a single iteration of blocks 204, 206, 208, and either 212 or 210 and 212. If moved at once, one of the selected tiles is moved to the new location and the others of the tile are moved adjacent to the new location. By so doing, the techniques permit users to move multiple tiles within or across groups quickly and easily.

Either separate or in conjunction with method 200, the techniques may automatically reflow tiles of a group in response to a tile being moved, as is described in method 900 below.

FIG. 9 depicts method 900 for arranging tiles, including automatically reflowing tiles. Block 902 presents multiple tiles within an array. The array can be any one of the groups set forth above as well as other arrangements of tiles, such a group having a circular or three-dimensional pattern (e.g., layers of columns and rows). In the ongoing example, the array includes multiple columns and rows, such as those shown in FIG. 3, groups 502 or 506 of FIG. 5, or group 1002 of FIG. 10.

As part of reflowing tiles within an array, various rules may be used, such as top-to-bottom and then left-to-right. Other rules may instead be used, such as right-to-left or bottom-to-top (e.g., in cultures where language is not commonly arranged left-to-right). In an ongoing example, an array is ordered to have superior and subordinate locations. This example array has a left-most column with locations superior to locations within columns arranged right of the left-most column, and a top-most row of each column having locations superior to locations within each column arranged below the top-most row.

Block 904 receives selection to place a selected tile at a location within the array and at which a current tile of the multiple tiles resides. These tiles, as noted, can be selected and placed as described in method 200 or otherwise, such as through auto-scrolling within a same array or across a different array by dragging-and-dropping a tile from a location off screen to the selected location.

Further, prior to placing the tile at the selected location, manager 126 can indicate the location at which the selected tile will be placed, such as through tilting an immediately superior tile or a current tile in the location responsive to a dwell, hover, or movement over the location of the selected tile. Manager 126 may also indicate the location by previewing the arrangement of the array should the tile be placed at the location and the array of tiles be reflowed based on the placement.

By way of example, consider FIG. 10, which illustrates placement, through a gesture 1004, of tile 1006 at location 1008. Note that tile 1010 currently resides at location 1008.

Block 906 places the selected tile at the location in the array. Method 900 may perform block 906 before, after, or in conjunction with block 908. Thus, the reflow may be shown prior to, after, or at the same time as placement of the selected tile at the location.

Block 908 automatically reflows one or more of the multiple tiles within the array, the reflow moving at least the current tile to a subordinate location in the array. Manager 126 reflows tiles of the array in response to the selection to place the tile at the location. By so doing, users need not take the time or effort to manually arrange tiles in the array.

In the ongoing example, the array is ordered by column, top-to-bottom, and then row, left-to-right. For this order, manager 126 moves the current tile and any tiles subordinate to the current tile down their respective columns unless no lower location exists in their respective columns and, if no lower location exists in their respective columns, moves the tile over from its respective columns to a column arranged to the right of its respective column.

The result is shown in FIG. 11. Manager 126 places tile 1006 at location 1008 and reflows tiles of group 1002. The movement of the automatic reflow is shown with reflow path 1102, which illustrates the top-to-bottom, then left-to-right, and then top-to-bottom reflow of tiles.

In addition to automatically reflowing an array due to placing a selected tile within an array, the techniques may also reflow tiles responsive to removing a tile from an array (whether a different array or the same array into which the tile is moved). By way of example, consider again FIG. 4, which illustrates selection of tile 304 for removal from interface 300. In FIG. 4, the location from which tile 304 is removed is shown with a hashed-line box 406. The techniques, however, may reflow the other tiles of interface 300 in FIG. 4 responsive to moving tile 304. In such a case, the reflow can be immediately in response to selection of a tile, such as at block 204, or after placement of the selected tile to its new location at block 212.

Whether automatically reflowing tiles in an array responsive to removing or adding in a tile, the techniques may also reflow sub-arrays within an array. Consider again FIG. 11, which shows small tiles 1104, 1106, and 1108. Small tile 1104 is currently at a location 1110. In response to a selection to move small tile 1108 to location 1110, manager 126 reflows the small tiles within the sub-array made up of the small tiles. This is illustrated in FIG. 12, which shows the result of manager 126 automatically placing small tile 1108 at location 1110, moving small tile 1104 right, and then moving small tile 1106 down (and then all of the subordinate tiles as shown by path 1202).

As noted above, the techniques may automatically reflow an array in response to a tile be removed from a location in an array and/or sub-array. As shown in FIG. 12, tile 1108 was moved. In response manager 126 moved a previously subordinate tile, tile 1204, into tile 1108's original location. The techniques may do so in an opposite manner as noted for adding tiles, such as a reverse-direction of path 1102 or 1202. Thus, should tile 1106 be moved to a different array, deleted, or otherwise moved, manager 126 automatically reflows tiles in group 1002 of FIG. 12 to move into the location originally occupied by tile 1106 a subordinate tile (in this case with a large tile).

In some cases a user may decide not to move a tile. Consider a case where a user moves a selected tile to a location in an array. Here assume that manager 126 previews what the array will look like if the selected tile is added at that location. The user, in response, decides against moving the tile. The techniques permit the user to quickly and easily revert the moved tile back to its original location. The user may indicate this decision to abandon moving the tile in various ways, such as through selecting a hot key or dropping the tile into a particular region of a user interface, outside of the array or the interface, or at a location not indicated as valid within the interface. Manager 126 may reinforce that the techniques are reverting the tile back to its original location, such as by presenting the selected tile back at its original location. If the original location is not shown in the current view, manager 126 automatically presents a prior view showing the original location.

The preceding discussion describes methods in which the techniques may operate to arrange tiles. Aspects of these methods may be implemented in hardware (e.g., fixed logic circuitry), firmware, software, manual processing, or any combination thereof. A software implementation represents program code that performs specified tasks when executed by a computer processor. The example methods can be performed through computer-executable instructions, which can include software, applications, routines, programs, objects, components, data structures, procedures, modules, functions, and the like. The program code can be stored in one or more computer-readable memory devices, both local and/or remote to a computer processor. The methods may also be practiced in a distributed computing mode by multiple computing devices. Further, the features described herein are platform-independent and can be implemented on a variety of computing platforms having a variety of processors.

By way of example, these techniques may be embodied on one or more of the entities shown in system 100 of FIG. 1 and/or example device 1300 described below, which may be further divided, combined, and so on. Thus, system 100 and/or device 1300 illustrate some of many possible systems or apparatuses capable of employing the described techniques. The entities of system 100 and/or device 1300 generally represent software, firmware, hardware, whole devices or networks, or a combination thereof. In the case of a software implementation, for instance, the entities (e.g., manager 126, mode modules 122 and 124) represent program code that performs specified tasks when executed on a processor (e.g., processor(s) 116). The program code can be stored in one or more computer-readable memory devices, such as computer-readable storage media 118 or computer-readable media 1314 of FIG. 13.

Example Device

FIG. 13 illustrates various components of an example device 1300 that can be implemented as any of the devices, or services and operations implemented by the devices, described with reference to the previous FIGS. 1-12. In some embodiments, device 1300 can be implemented as one or a combination of a wired and/or wireless device, as a form of television client device (e.g., television set-top box, digital video recorder (DVR), etc.), consumer device, computer device, server device, portable computer device, user device, communication device, video processing and/or rendering device, appliance device, gaming device, electronic device, and/or as another type of device. Device 1300 may also be associated with a user (e.g., a person) and/or an entity that operates the device such that a device describes logical devices that include users, software, firmware, and/or a combination of devices.

Device 1300 includes communication devices 1302 that enable wired and/or wireless communication of device data 1304 (e.g., received data, data that is being received, data scheduled for broadcast, data packets of the data, etc.). The device data 1304 or other device content can include configuration settings of the device, media content stored on the device, and/or information associated with a user of the device. Media content stored on device 1300 can include any type of audio, video, and/or image data. Device 1300 includes one or more data inputs 1306 via which any type of data, media content, and/or inputs can be received, such as user-selectable inputs, messages, music, television media content, recorded video content, and any other type of audio, video, and/or image data received from any content and/or data source.

Device 1300 also includes communication interfaces 1308, which can be implemented as any one or more of a serial and/or parallel interface, a wireless interface, any type of network interface, a modem, and as any other type of communication interface. The communication interfaces 1308 provide a connection and/or communication links between device 1300 and a communication network by which other electronic, computing, and communication devices communicate data with device 1300.

Device 1300 includes one or more processors 1310 (e.g., any of microprocessors, controllers, and the like), which process various computer-executable instructions to control the operation of device 1300 and for arranging tiles. Alternatively or in addition, device 1300 can be implemented with any one or combination of hardware, firmware, or fixed logic circuitry that is implemented in connection with processing and control circuits which are generally identified at 1312. Although not shown, device 1300 can include a system bus or data transfer system that couples the various components within the device. A system bus can include any one or combination of different bus structures, such as a memory bus or memory controller, a peripheral bus, a universal serial bus, and/or a processor or local bus that utilizes any of a variety of bus architectures.

Device 1300 also includes computer-readable storage media 1314, such as one or more memory devices that enable persistent and/or non-transitory data storage (i.e., in contrast to mere signal transmission), examples of which include random access memory (RAM), non-volatile memory (e.g., any one or more of a read-only memory (ROM), flash memory, EPROM, EEPROM, etc.), and a disk storage device. A disk storage device may be implemented as any type of magnetic or optical storage device, such as a hard disk drive, a recordable and/or rewriteable compact disc (CD), any type of a digital versatile disc (DVD), and the like. Device 1300 can also include a mass storage media device 1316.

Computer-readable storage media 1314 provides data storage mechanisms to store the device data 1304, as well as various device applications 1318 and any other types of information and/or data related to operational aspects of device 1300. For example, an operating system 1320 can be maintained as a computer application with the computer-readable storage media 1314 and executed on processors 1310. The device applications 1318 may include a device manager, such as any form of a control application, software application, signal-processing and control module, code that is native to a particular device, a hardware abstraction layer for a particular device, and so on.

The device applications 1318 also include any system components or modules to implement techniques for arranging tiles. In this example, the device applications 1318 can include windows-based mode module 122, immersive mode module 124, and manager 126.

CONCLUSION

Although embodiments of techniques and apparatuses for arranging tiles have been described in language specific to features and/or methods, the appended claims are not necessarily limited to the specific features or methods described. Rather, the specific features and methods are disclosed as example implementations for arranging tiles. 

1. A computer-implemented method comprising: receiving selection of a selected tile of multiple tiles displayed in a first view in a user interface, the selection moving the selected tile from a current location among the multiple tiles to a region of the user interface; responsive to selection, zooming out from the first view to a second view, the second view including multiple other tiles not displayed in the first view; receiving selection moving the selected tile to a new location in the second view; zooming into the new location, the zooming in presenting a third view, the third view including the new location and one or more of the multiple other tiles; and placing the selected tile at the new location.
 2. A computer-implemented method as described in claim 1, wherein receiving selection moving the selected tile to the region receives a first gesture dragging the selected tile to the region and receiving selection moving the selected tile to the new location receives a second gesture dragging the selected tile from the region to the new location, the second gesture received through the user interface when presenting the second view.
 3. A computer-implemented method as described in claim 1, wherein receiving selection moving the selected tile also receives one or more other selected tiles, and wherein placing the selected tile at the new location places the one or more other selected tiles adjacent the new location.
 4. A computer-implemented method as described in claim 1, wherein receiving selection moving the selected tile to the region and receiving selection moving the selected tile to the new location are received through a single, continuous gesture and wherein zooming out from the first view to the second view and zooming in from the second view to the third view are performed during the single, continuous gesture.
 5. A computer-implemented method as described in claim 1, further comprising receiving a third selection, the third selection placing the selected tile between or adjacent to one or more of the multiple tiles, and wherein placing the selected tile at the new location is responsive to the third selection.
 6. A computer-implemented method as described in claim 5, further comprising indicating, prior to receiving the third selection, valid locations between or adjacent to the one or more of the multiple tiles at which the selected tile can be placed.
 7. A computer-implemented method as described in claim 1, wherein the selection moving the selected tile to the new location includes a dwell or hover over the new location, and wherein zooming into the new location is responsive to the dwell or the hover.
 8. A computer-implemented method as described in claim 1, wherein the user interface is an application-launching interface.
 9. A computer-implemented method as described in claim 1, wherein the region is a top edge of the user interface, a bottom edge of the user interface, or a marked area within the user interface, or an area not including one of the multiple tiles.
 10. A computer-implemented method comprising: presenting multiple tiles within an array; receiving selection to place one or more selected tiles at a location within the array and at which a current tile of the multiple tiles resides; placing the selected tiles at the location; and automatically reflowing one or more of the multiple tiles within the array, the reflowing moving at least the current tile to a subordinate location in the array.
 11. A computer-implemented method as described in claim 10, wherein one of the one or more selected tiles, when selected, is one of the multiple tiles within the array and is at an original location within the array, and wherein automatically reflowing moves a subordinate tile of the multiple tiles to the original location.
 12. A computer-implemented method as described in claim 10, wherein one of the one or more selected tiles is moved from a different array and wherein presenting the multiple tiles within the array auto-scrolls through the different array to the array.
 13. A computer-implemented method as described in claim 10, wherein the array includes columns and rows having superior and subordinate locations, a left-most column having locations superior to locations within columns arranged right of the left-most column, and a top-most row of each column having locations superior to locations within each column arranged below the top-most row.
 14. A computer-implemented method as described in claim 13, wherein automatically reflowing one or more of the multiple tiles within the array moves the current tile and any tiles subordinate to the current tile down their respective columns unless no lower location exists in their respective columns, if no lower location exists in their respective columns, the automatically reflowing moves over from their respective columns to a column arranged to the right of their respective columns.
 15. A computer-implemented method as described in claim 10, wherein receiving selection includes dwelling or hovering the selected tiles over or adjacent to the location and further comprising indicating, responsive to the dwelling or hovering and prior to placing the selected tile, a preview of the array if the selected tiles are placed at the location.
 16. A computer-implemented method as described in claim 10, wherein receiving selection includes dwelling or hovering the selected tiles over or adjacent to the location and further comprising indicating, responsive to the dwelling or hovering and prior to placing the selected tiles, the location at which one the selected tiles will be placed by altering an appearance of the current tile or a tile immediately superior to the current tile.
 17. A computer-implemented method as described in claim 10, further comprising: receiving a selection dwelling or hovering a second selected tile at a second location within the array; previewing a result of placing the second selected tile at the second location, the previewing showing a result of automatically reflowing one or more of the multiple tiles within the array; receiving selection to place the second selected tile outside the array; and indicating that the second selected tile has not been placed at the second location within the array.
 18. A computer-implemented method as described in claim 17, wherein indicating that the second selected tile has not been placed at the second location in the array presents a different array having an original location of the second selected tile.
 19. A computer-implemented method as described in claim 10, wherein: the array includes a sub-array, the sub-array having two or more small tiles of the multiple tiles; the selected tiles are small and the location is within the sub-array having one of the one or more small tiles; the current tile is small and at the location; and automatically reflowing reflows the current tile within the sub-array.
 20. A computer-implemented method comprising: receiving selection of a selected tile of multiple tiles displayed in a first view in a user interface, the selection moving the selected tile from an original location within the multiple tiles to a first region of the user interface; responsive to selection, zooming out from the first view to a second view, the second view including multiple other tiles not displayed in the first view; receiving selection moving the selected tile to a second region in the second view; responsive to selection, zooming into the second region, the zooming presenting a third view, the third view including an array having multiple other tiles; receiving selection placing the selected tile at a location within the array and at which a current tile of the multiple other tiles resides; responsive to selection, automatically reflowing one or more of the multiple other tiles within the array, the reflowing moving at least the current tile to a subordinate location in the array; and placing the selected tile at the location. 